package online.inote.dic.common.utils;

import org.slf4j.helpers.MessageFormatter;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

/**
 * <p>
 * Desc: String 工具类
 * </p>
 *
 * @author Sui
 * @created: 2017年12月2日 下午11:59:18
 * @version 1.0
 */
public class StringUtils extends org.apache.commons.lang3.StringUtils {

	/**
	  * <p>
	  * Desc: 处理参数输入
	  * </p>
	  *
	  * @author Sui
	  * @created 2017年12月2日 下午11:59:43
	  * @param message
	  * @param o
	  * @return
	  */
	public static String replaceParams(String message, Object... o) {
		return MessageFormatter.arrayFormat(message, o).getMessage();
	}

	/**
	 * <p>
	 * Desc: 字符串是否为JSON对象
	 * </p>
	 *
	 * @author XQF SUI
	 * @created 2018年11月9日 上午10:53:52
	 * @return
	 */
	public static boolean isJSONObject(String params) {
		System.out.println(1);
		if (StringUtils.isBlank(params)) {
			return false;
		}
		
		if (!StringUtils.startsWith(params, "{") || !StringUtils.endsWith(params, "}")) {
			return false;
		}
		
		try {
			JSON.parseObject(params);
			return true;
		} catch (Exception e) {
			return false;
		}
	}
	
	/**
	 * <p>
	 * Desc: 字符串是否为JSON数组
	 * </p>
	 *
	 * @author XQF SUI
	 * @created 2018年11月9日 上午11:03:36
	 * @param params
	 * @return
	 */
	public static boolean isJSONArray(String params) {
		System.out.println(2);
		if (StringUtils.isBlank(params)) {
			return false;
		}
		
		if (!StringUtils.startsWith(params, "[") || !StringUtils.endsWith(params, "]")) {
			return false;
		}
		
		try {
			JSONArray.parseArray(params);
			return true;
		} catch (Exception e) {
			return false;
		}
	}
	
	/**
	 * <p>
	 * Desc: 字符串是否是JSON格式
	 * </p>
	 *
	 * @author XQF SUI
	 * @created 2018年11月9日 上午11:04:08
	 * @param params
	 * @return
	 */
	public static boolean isJSON(String params) {
		return isJSONObject(params) || isJSONArray(params);
	}
}
